/**
 *
 */
public class SelectSort {

    /**
     * 找到i开始最小元素的下表，交换两元素。
     * @param array
     */
    public static void selectSort(int[] array){
        for (int i = 0; i < array.length; i++) {
            int minIndex=i;
            for (int j = i+1; j <array.length ; j++) {
                if (array[minIndex]>array[j]){
                    minIndex=j;
                }
            }
            int tmp=array[i];
            array[i]=array[minIndex];
            array[minIndex]=tmp;
        }
    }

    public static void selectSort1(int[] array){
        for (int i = 0; i < array.length; i++) {
            for (int j = i+1; j <array.length ; j++) {
                if (array[i]>array[j]){
                    int tmp=array[i];
                    array[i]=array[j];
                    array[j]=tmp;
                }
            }
        }
    }

    public static void selectSort2(int[] array){
        for (int i = 0; i < array.length; i++) {
            //先设置当前最大||最小
            int curmin=array[i];
            //找他后边最小值，然后放到i位置
            for (int j = i+1; j <array.length ; j++) {
                if (curmin>array[j]){
                    int tmp=curmin;
                    curmin=array[j];
                    array[j]=tmp;
                }
            }
            array[i]=curmin;
        }
    }


    public static void main(String[] args) {
        int[] array1={0,5,9,7,8,3,1,2,6,4};
        selectSort1(array1);
        for (int x:
                array1) {
            System.out.println(x);
        }
    }
}
